/********************************************************************************
* This program is free software; you can redistribute it and/or modify it under *
* the terms of the GNU General Public License as published by the Free Software *
* Foundation; either version 2 of the License, or (at your option) any later 	*
* version. This program is distributed in the hope that it will be useful, but 	*
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more *
* details. You should have received a copy of the GNU General Public License 	*
* along with this program; if not, write to the Free Software Foundation, Inc., *
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.						*
* (c) Copyright 2012 José Delgado Pérez, josedelgado@ula.ve josed43@gmail.com.	*				*
********************************************************************************/

/**
 @file sensorIR.h
 @brief Clase para el manejo del sensor IR tiene acceso al pin analógico donde esta conectado el sensor,
 	 	brinda los métodos para acceder al valor del sensor.
 @date Diciembre, 2012.
 @author José Delgado Pérez, josedelgado@ula.ve josed43@gmail.com.
 @version 0.9

 Algunos datos: El sensor usado para la plataforma LASDAI-LR2 es el sensor SHARP GP2Y0A21YK0 del fabricante Pololu,
 	 	 	 	este es un sensor analógico que destaca por su pequeño tamaño y su bajo consumo, tiene un alcance de
 	 	 	 	0 a 80 centímetros.
*/

#ifndef SENSORIR_H
#define SENSORIR_H

class sensorIR{

public:

	/** Constructor vacío de clase. */
	sensorIR();

	/**
	 @brief Constructor, asigna el valor del pin del sensor al objeto.
	 @param pin Número del pin analógico del Arduino al que esta conectado el sensor.
	*/
    sensorIR(int pin);

    /**
	 @brief Obtiene el valor de del sensor en tiempo real.
	 @return Un entero con el valor de lectura.
	*/
    int obtenerLectura();

	/**
	 @brief Obtiene el número del pin del Arduino al que esta conectado el IR.
	 @return Un entero con el número del pin.
	*/
    int getPin() const;

	/**
	 @brief Asigna el valor al parametro que guarda el número del pin analogico de conexión con el Arduino.
	 @param Número del pin analógico del Arduino al que esta conectado el sensor.
	*/
    void setPin(int pin);

	/** Destructor, desenlaza el pin de conexión al Arduino del objeto */
    ~sensorIR();

private:

	/** Número del pin del Arduino al que esta conectado el sensor. */
    int _pin;

};

#endif
